Data frequently changes in the rows of tables of a database management system. When data is accessible to multiple threads in the database management system, multiple transactions may independently manipulate the rows and the data. The changes to rows made by each transaction may be temporary until the transaction is committed in the system.
To track changes to the same rows made by multiple transactions, the database management system uses a multi-version concurrency control (MVCC) mechanism. The MVCC mechanism maintains multiple versions of a row in order to track changes made to the row by each of the transactions. Each version of the row may be assigned a creation and/or deletion timestamp, and these timestamps are temporary while a transaction is still active. When a transaction has been committed and the changes are made permanent, a separate post commit thread is typically executed to update the temporary timestamps with the transaction's commit time.
In a high volume transactional database, table data may be exported periodically for backup and recovery purposes. Due to availability requirements, an export may be executed in parallel with active transactions and post commit threads. Therefore, a solution is needed to properly export rows containing temporary timestamps that have not been updated at the time of export.
In the drawings, like reference numbers generally indicate identical or similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.